package com.yxx.business.entity;

import java.math.BigDecimal;
import com.yxx.common.annotation.Excel;
import com.yxx.common.core.domain.BaseColumnEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.experimental.Accessors;
import lombok.*;

import javax.validation.constraints.NotNull;

/**
 * 运营维护阶段Do对象 tb_operation_phase
 *
 * @author yxx
 * @date 2025-08-16
 */
@Schema(description = "运营维护阶段Do实体")
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Builder
@Data
@TableName(value = "tb_operation_phase", autoResultMap = true)
public class TbOperationPhaseDo extends BaseColumnEntity {

    private static final long serialVersionUID = 1L;

    @Schema(description = "表ID")
    @TableId(value = "operation_id", type = IdType.AUTO)
    private Long operationId;

    @Schema(description = "项目ID")
    @TableField("project_id")
    @Excel(name = "项目ID")
    private Long projectId;

    @Schema(description = "工程ID")
    @TableField("engineering_id")
    @Excel(name = "工程ID")
    private Long engineeringId;

    @Schema(description = "设备信息ID集合（逗号分隔）")
    @TableField("equipment_info_ids")
    @Excel(name = "设备信息ID集合", readConverterExp = "逗=号分隔")
    private String equipmentInfoIds;

    @Schema(description = "材料运输信息ID集合（逗号分隔）")
    @TableField("material_transport_ids")
    @Excel(name = "材料运输信息ID集合", readConverterExp = "逗=号分隔")
    private String materialTransportIds;

    @Schema(description = "人员排放ID")
    @TableField("personnel_emission_id")
    @Excel(name = "人员排放ID")
    private Long personnelEmissionId;

    @Schema(description = "平均用电消耗量(kWh/年)")
    @TableField("avg_electricity")
    @Excel(name = "平均用电消耗量(kWh/年)")
    private BigDecimal avgElectricity;

    @Schema(description = "工程设计年限（年）")
    @TableField("design_life")
    @Excel(name = "工程设计年限", readConverterExp = "年=")
    private Long designLife;

    @Schema(description = "电网碳排放因子(kgCO2e/kWh)")
    @TableField("grid_carbon_factor")
    @Excel(name = "电网碳排放因子(kgCO2e/kWh)")
    private BigDecimal gridCarbonFactor;

    @Schema(description = "初始年日交通量(辆/日)")
    @TableField("initial_daily_traffic")
    @Excel(name = "初始年日交通量(辆/日)")
    private BigDecimal initialDailyTraffic;

    @Schema(description = "车辆单位距离碳排放因子(kgCO2e/km·辆)")
    @TableField("vehicle_emission_factor")
    @Excel(name = "车辆单位距离碳排放因子(kgCO2e/km·辆)")
    private BigDecimal vehicleEmissionFactor;

    @Schema(description = "年均交通变化率")
    @TableField("traffic_growth_rate")
    @Excel(name = "年均交通量(辆/年)")
    private BigDecimal trafficGrowthRate;

    @Schema(description = "绿地种植方式")
    @TableField("planting_method")
    @Excel(name = "绿地种植方式")
    private String plantingMethod;

    @Schema(description = "种植面积(㎡)")
    @TableField("planting_area")
    @Excel(name = "种植面积(㎡)")
    private BigDecimal plantingArea;

    @Schema(description = "碳排放量(kgCO2e)")
    @Excel(name = "碳排放量(kgCO2e)")
    private BigDecimal totalEmission;

    @Schema(description = "更新者id")
    @TableField("create_by_id")
    private Long createById;

    @Schema(description = "更新者id")
    @TableField("update_by_id")
    private Long updateById;

}
